package com.oxygen.pt.service;

import ch.qos.logback.classic.Logger;
import com.github.pagehelper.PageInfo;
import com.oxygen.pt.pojo.dto.DistributionCabinDTO;
import com.oxygen.pt.pojo.dto.PatientDTO;
import com.oxygen.pt.pojo.vo.*;

import java.util.List;

public interface PatientService {
    Result<String> add(PatientDTO patientDTO, Logger log);

    PageInfo<PatientVO> getPatients(String costType, Integer gender, Long minAge,
                                    Long maxAge, Long personType, int page, int size);

    PatientVO getById(Long id);

    PatientDetailVO getDetailById(Long id);

    List<AnomalyRecordVO> getAnomalyList();

    TreatmentAnalysisVO treatmentData(Integer unit);

    ArmyAndPlaceVO getArmyAndPlaceNum();

    PatientTypeNumCountVO getPatientTypeNumCount();

    Result<Object> distributionCabin(DistributionCabinDTO distributionCabinDTO);

    Result<Object> cancelAllocation(Long patientId);

    Result<Object> insertAnomalyRecord(AnomalyRecordVO anomalyRecordVO);

    Result<Object> startTreatment(Long patientId);

    Result<Object> finishTreatment(Long patientId);

    boolean deletePatientById(Long id);

    PageInfo<AnomalyRecordVO> getAnomalyPage(Integer pageNum, Integer pageSize);

    boolean updatePatient(PatientDTO patientDTO);
}
